package packagerars;

import java.util.HashMap;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 *
 * @author Ronald
 */
public class Principal {
    
    /**
     * logger : Objeto encargado de los log en la aplicacion.
     */
    private static final Log LOGGER = LogFactory.getLog(Principal.class);
    /**
     * parametros del shell .
     */
    private static Map params = new HashMap();

    /**
     * Metodo principal de la clase .
     * @param args .
     */
    public static void main(final String[] args) {
        if (args.length == 0) {
            ayuda();
            System.exit(0);

        } else {
            if (args.length < 3 && !args[0].equals("ayuda")) {
                ayuda();
                System.exit(0);
            }
        }
        for (int i = 0; i <= args.length - 1; i++) {
            switch (i) {
                case 0:
                    params.put("urlRaiz", args[0]);

                    break;
                case 1:
                    params.put("urlAchivo", args[1]);
                    break;
                case 2:
                    if (args[2].equals("agrupar")
                            || args[2].equals("no_agrupar")) {
                        params.put("agrupar", args[2]);
                    } else {
                        informacion();
                        System.exit(0);
                    }
                    break;
                case 3:
                    params.put("nombreArchivo", args[3]);
                    break;
                case 4:
                    params.put("userFTP", args[4]);
                    break;
                case 5:
                    params.put("passFTP", args[5]);
                    break;
                case 6:
                    params.put("hostFTP", args[6]);
                    break;
            }
        }
        if (params.get("urlRaiz").toString().equals("ayuda")) {
            informacion();
            System.exit(0);
        }
        boolean enviarSW = false;
        if (params.size() > 4) {
            enviarSW = true;
        }
        Compresor compresor = new Compresor();
        compresor.compresor((String) params.get("urlRaiz"),
                (String) params.get("urlAchivo"),
                (String) params.get("agrupar"),
                (String) params.get("userFTP"),
                (String) params.get("passFTP"),
                (String) params.get("hostFTP"),
                "21",
                enviarSW,
                (String) params.get("nombreArchivo"));

    }

    /**
     * Metodo que despliega informacion de ayuda.
     */
    public static void ayuda() {
        System.out.println("Para informacion sobre el uso del jar ejecute la"
                + " siguente linea java"
                + " -jar packager.jar ayuda");
    }
    /**
     * Metodo que despliega informaicion sobre la ejecucion del archivo.
     */
    public static void informacion() {
        System.out.println("Para hacer uso del packager.jar debe ejecutar la"
                + " siguiente"
                + " linea en el shell de tu sistema operativo java -jar "
                + "packager.jar seguidos de estos parametros  : \n"
                + "- Parametro 1: directorio raiz que contiene los pdf y "
                + "archivo plano. \n"
                + "- Parametro 2: url del archivo plano. \n"
                + "- Parametro 3: tipo de agrupacion del archivo personalizado,"
                + " solo se permite dos valores estos son: agrupar | no_agrupar"
                + " \n"
                + "- Parametro 4: nombre del archivo comprimido generado por el"
                + " packager . \n"
                + "- Parametro 5: usuario ftp. \n"
                + "- Parametro 6: clave del ftp. \n"
                + "- Parametro 7: host del ftp. \n"
                + "Ejemplo: java -jar packager.jar c:\\pdf\\ c:\\pdf\\mail.csv"
                + " agrupar nombreArchivo usuarioFTP claveFTP hostFTP \n");
    }
}
